﻿/*
 *  date: 2021-12-07
 *  author: Jn-chen
 *  cn: 事件控制接口
 *  en: todo:
 */


namespace UBJ.EventKit
{

    internal interface IEventCtrl
    {
        /// <summary>
        /// 事件控制器名字
        /// </summary>
        public string Name { get; }

        /// <summary>
        /// 注册事件
        /// </summary>
        /// <param name="name"> 事件名字 </param>
        /// <param name="msgHandler"> 事件 </param>
        public void RegistEvent(string name, HandlerMsg msgHandler);

        /// <summary>
        /// 移除事件
        /// </summary>
        /// <param name="name"> 事件名字 </param>
        /// <param name="msgHandler"> 事件 </param>
        public void RemoveEvent(string name, HandlerMsg msgHandler);

        /// <summary>
        /// 通知事件
        /// </summary>
        /// <param name="name"> 事件名 </param>
        /// <param name="args"> 事件参数 </param>
        public void NotifyEvent(string name, params object[] args);
    }
}


